/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	ClassTypeInfo.java
 * 模块说明：	
 * 修改历史：
 * Dec 7, 2007 - lxm - 创建。
 */
package com.hd123.rumba.gwt.cpnts.filter.client.biz;

import java.util.ArrayList;
import java.util.List;

/**
 * 对应复杂类的类型信息
 * 
 * @author lxm
 * 
 */
public class ClassTypeInfo extends TypeInfo {

  public ClassTypeInfo() {
    super();
    this.dataType = DataTypeEnum.Class;
  }
  
  /**
   * 复制当前对象。
   */
  public ClassTypeInfo clone() {
    ClassTypeInfo cti = new ClassTypeInfo();
    cti.setCaption(this.caption);
    cti.setDataType(this.dataType);
    cti.setClassName(this.className);
    cti.setIsServant(this.isServant);
    cti.getFields().clear();
    for (int i = 0; i < this.fields.size(); i++) {
      FieldInfo fi = (FieldInfo) this.fields.get(i);
      FieldInfo fi2 = fi.clone();
      fi2.setOwner(cti);
      cti.getFields().add(fi2);
    }
    return cti;
  }

  public void setDataType(DataTypeEnum dataType) {
    if (dataType != null && dataType.isBasic())
      return;
    super.setDataType(dataType);
  }

  private String className;
  private List fields = new ArrayList();
  private Boolean isServant = Boolean.FALSE;

  /** 是否是服务类 */
  public Boolean getIsServant() {
    return isServant;
  }

  /** 是否是服务类 */
  public void setIsServant(Boolean isServant) {
    this.isServant = isServant;
  }

  /** 对应的类名。 */
  public String getClassName() {
    return className;
  }

  /** 对应的类名。 */
  public void setClassName(String className) {
    this.className = className;
  }

  /** 
   * 属性列表
   * @gwt.typeArgs <FieldInfo>
   */
  public List getFields() {
    return fields;
  }

  /** 
   * 属性列表
   * @gwt.typeArgs properties <FieldInfo>
   */
  public void setFields(List properties) {
    this.fields = properties;
  }
}
